home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
TeX 1995 July
/
TeX CD-ROM July 1995 (Disc 1)(Walnut Creek)(1995).ISO
/
tex-k
/
tex-k-archive.past
/
tex-k-archive.gz
/
tex-k-archive
/
000401_kb@cs.umb.edu_Wed Mar 16 00:43:28 1994.msg
< prev
next >
Wrap
Internet Message Format
|
1994-10-11
|
3KB
Received: from terminus.cs.umb.edu by cs.umb.edu with SMTP id AA24841
(5.65c/IDA-1.4.4 for <tex-k-exp@cs.umb.edu>); Wed, 16 Mar 1994 05:43:29 -0500
Received: by terminus.cs.umb.edu id AA26915
(5.65c/IDA-1.4.4 for tex-k); Wed, 16 Mar 1994 05:43:28 -0500
Date: Wed, 16 Mar 1994 05:43:28 -0500
From: "K. Berry" <kb@cs.umb.edu>
Message-Id: <199403161043.AA26915@terminus.cs.umb.edu>
To: fj@iesd.auc.dk, tex-k@cs.umb.edu
Subject: Re: Kpathsearch -- database searching
I had intended the match function in db.c to deal with two identically-named
files in the db -- ricoh/cmr10.300pk and cx/cmr10.300pk, for example.
If the path looks /sys//ricoh, the db should return the first; if the
path is /sys//cx, the latter.
Right now, you'll get whichever comes first in the hash table (last in
the ls-R file, I think).
Looking for ./cmr10.300pk first (if the path is .:/sys... and an ls-R
existed in /sys) was something I hadn't thought of. Of course we
shouldn't be looking in the db at all for a path element of `.'. So now
I just check if the directory of the db file is a prefix of the path
element before trying the db. That fixes that problem.
The question is how to make
this differentiation: Is it simply built into the code that files
found in a certain path (e.g., TEXINPUTS) are supposed to exist? Or
do we provide some way to configure Kpathsearch, i.e., a way to tell
it that certain paths (or even certain parts of the paths) are
supposed to be searched by db only.
I prefer the latter approach.
Well, I suppose in theory I would prefer some runtime configuration,
too, but I don't see any easy way to do this.
It's not a function solely of the path being searched on; the program
being run is also a factor. For example, when xdvi looks for a VF file
it need not exist, but when vftovp looks for a VF file, it must exist.
When TeX does a \input, the file must exist. But when TeX does an
\openin, it need not. The same search paths are involved in each case.
Thus, each file search in the sources has to be examined.
Sigh.
The reason I'm willing to go to all this trouble is I think that it's
very important that if a file (foo.tex, say) *does* exist, but is *not*
in the database, that TeX should find it. There is nothing more
frustrating than installing something and then having to regenerate a
zillion subsidiary databases for it to actually be available.
Perhaps I am being overzealous about this, since the database could be
regenerated every hour (probably even more often) without any meaningful
performance hit, but it just seems intuitively wrong to me to rely on
that one file to find everything.
(For one thing, it would mean all the effort I put in implementing
efficient searches on the filesystem would be useless :-)